﻿using BaseAuthRole.Domain.Input;
using BaseAuthRole.Domain.OutPut;
using RS.BaseModel.Common;

namespace BaseAuthRole.AspNetCore
{
    public interface IBaseAuthClient
    {
        string BuildAuthUrl(string redirectUri, string scope = "auth_base");

        CommonResult<GetUserInfoOutPut> IfUserLogined(string token);

        CommonResult<GetUserAuthTokenOutput> GetAuthToken(string code);

        CommonResult<GetUserInfoOutPut> GetUserInfo(string token);

        CommonResult<GetUserDetailInfoOutPut> GetUserDetailInfo(string auth_token);

        CommonResult<GetUserInfoOutPut> GetUserInfoByUid(string uid);

        CommonResult<PageModel<GetUserInfoOutPut>> GetUserInfoList(GetUserInfoListInput input);

        CommonResult<PageModel<GetSimpleUserInfoOutPut>> GetSimpleUserInfoList(GetUserInfoListInput input);

        CommonResult<GetAppAccessTokenModelOutPut> GetAppAccessToken();

        CommonResult CheckAppAccessToken(string appid, string appaccesstoken);

        CommonResult<GetUserInfoOutPut> GetUserInfoByJobNum(string JobNum);

        CommonResult<GetUserInfoOutPut> GetUserInfoByLoginName(string LoginName);

        CommonResult<List<string?>> GetOrgIdListByOrgId(GetOrgIdListByOrgIdInput input);

        CommonResult<List<string?>> GetSubOrgIdListByOrgId(GetOrgIdListByOrgIdInput input);

        CommonResult<List<SimpleOrgOutput>> GetAllSimpleOrgList();

        CommonResult<OrgOutPut?> GetOrgInfoByOrgId(GetOrgInfoByOrgIdInput input);

        CommonResult<List<OrgOutPut>?> GetOrgInfosByOrgIds(GetOrgInfosByOrgIdsInput input);

        CommonResult<List<KnowledgeAuthOutPut>?> GetKnowledgeAuthInfoList(GetKnowledgeAuthInfoListInput input);

        CommonResult UpdateKnowledgeReadAction(UpdateKnowledgeReadActionInput input);
        CommonResult<GetKnowledgeAuthOrganizationApiListOut?> GetKnowledgeAuthOrganizationApiList(GetKnowledgeAuthOrganizationApiListInput input);
    }
}